package com.sojson.util.httpclient;

import java.io.IOException;
import java.util.Map;

/**
 * HttpClient工具类接口
 * 
 * @author liu
 * @Date 2020-06-15 14:45:16
 * @Description
 *
 */
public interface HttpClientUtilInterface {

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @return
     * @throws Exception
     */
    String doGet(String url) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @return
     * @throws Exception
     */
    String doGetByHeader(String url, String headers) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @return
     * @throws Exception
     */
    String doGetByHeader(String url, Map<String, String> headers) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param params 参数(Json数据格式)
     * @return
     * @throws Exception
     */
    String doGetByParam(String url, String params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws Exception
     */
    String doGetByParam(String url, Map<String, String> params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @param params 参数(Json数据格式)
     * @return
     * @throws Exception
     */
    String doGet(String url, String headers, String params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @param params 参数(Json数据格式)
     * @return
     * @throws Exception
     */
    String doGet(String url, Map<String, String> headers, String params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @param params 参数
     * @return
     * @throws Exception
     */
    String doGet(String url, String headers, Map<String, String> params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @param params 参数
     * @return
     * @throws Exception
     */
    String doGet(String url, Map<String, String> headers, Map<String, String> params) throws Exception;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @return
     * @throws IOException
     */
    String doPost(String url) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @return
     * @throws IOException
     */
    String doPostByHeader(String url, String headers) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @return
     * @throws IOException
     */
    String doPostByHeader(String url, Map<String, String> headers) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param params 参数(Json数据格式)
     * @return
     * @throws IOException
     */
    String doPostByParam(String url, String params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    String doPostByParam(String url, Map<String, String> params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @param params 参数(Json数据格式)
     * @return
     * @throws IOException
     */
    String doPost(String url, String headers, String params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @param params 参数(Json数据格式)
     * @return
     * @throws IOException
     */
    String doPost(String url, Map<String, String> headers, String params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @param params 参数
     * @return
     * @throws IOException
     */
    String doPost(String url, String headers, Map<String, String> params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @param params 参数
     * @return
     * @throws IOException
     */
    String doPost(String url, Map<String, String> headers, Map<String, String> params) throws IOException;

    /**
     * 发送put请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    String doPut(String url) throws IOException;

    /**
     * 发送put请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    String doPut(String url, Map<String, String> params) throws IOException;

    /**
     * 发送delete请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    String doDelete(String url) throws IOException;

    /**
     * 发送delete请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    String doDelete(String url, Map<String, String> params) throws IOException;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @return
     * @throws Exception
     */
    byte[] doGetByte(String url) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @return
     * @throws Exception
     */
    byte[] doGetByteByHeader(String url, String headers) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @return
     * @throws Exception
     */
    byte[] doGetByteByHeader(String url, Map<String, String> headers) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param params 参数(Json数据格式)
     * @return
     * @throws Exception
     */
    byte[] doGetByteByParam(String url, String params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws Exception
     */
    byte[] doGetByteByParam(String url, Map<String, String> params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @param params 参数(Json数据格式)
     * @return
     * @throws Exception
     */
    byte[] doGetByte(String url, String headers, String params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @param params 参数(Json数据格式)
     * @return
     * @throws Exception
     */
    byte[] doGetByte(String url, Map<String, String> headers, String params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @param params 参数
     * @return
     * @throws Exception
     */
    byte[] doGetByte(String url, String headers, Map<String, String> params) throws Exception;

    /**
     * 发送get请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @param params 参数
     * @return
     * @throws Exception
     */
    byte[] doGetByte(String url, Map<String, String> headers, Map<String, String> params) throws Exception;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @return
     * @throws IOException
     */
    byte[] doPostByte(String url) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @return
     * @throws IOException
     */
    byte[] doPostByteByHeader(String url, String headers) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @return
     * @throws IOException
     */
    byte[] doPostByteByHeader(String url, Map<String, String> headers) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param params 参数(Json数据格式)
     * @return
     * @throws IOException
     */
    byte[] doPostByteByParam(String url, String params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    byte[] doPostByteByParam(String url, Map<String, String> params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @param params 参数(Json数据格式)
     * @return
     * @throws IOException
     */
    byte[] doPostByte(String url, String headers, String params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @param params 参数(Json数据格式)
     * @return
     * @throws IOException
     */
    byte[] doPostByte(String url, Map<String, String> headers, String params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头(Json数据格式)
     * @param params 参数
     * @return
     * @throws IOException
     */
    byte[] doPostByte(String url, String headers, Map<String, String> params) throws IOException;

    /**
     * 发送post请求
     * 
     * @param url 地址
     * @param headers 请求头
     * @param params 参数
     * @return
     * @throws IOException
     */
    byte[] doPostByte(String url, Map<String, String> headers, Map<String, String> params) throws IOException;

    /**
     * 发送put请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    byte[] doPutByte(String url) throws IOException;

    /**
     * 发送put请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    byte[] doPutByte(String url, Map<String, String> params) throws IOException;

    /**
     * 发送delete请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    byte[] doDeleteByte(String url) throws IOException;

    /**
     * 发送delete请求
     * 
     * @param url 地址
     * @param params 参数
     * @return
     * @throws IOException
     */
    byte[] doDeleteByte(String url, Map<String, String> params) throws IOException;

}